﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace Brain
{
    public interface IPhysics3DManager : IEngineManager, IUpdateable
    {
        Vector3 Gravity { get; set; }
        Vector3 Scale { get; set; }

        void ChangedState(IWorldObject world, WorldObjectPhysics lastState);

        bool RayTest(Ray ray, out RayTestData hitData);
        bool RayTest(Ray ray, float length, out RayTestData hitData);
        bool RayTest(Ray ray, float length, out RayTestData hitData, WorldObject exclude);
        bool RayTest(Ray ray, float length, out RayTestData hitData, params WorldObject[] exclude);
    }
}
